2019년10월19일 7번
[과목 구분 없음] 프로세스 관리 과정에서 발생할 수 있는 교착상태(Deadlock)를 예방하기 위한 조치로 옳은 것은?
- ① 상호배제(Mutual Exclusion) 조건을 제거하고자 할 경우, 프로세스 A가 점유하고 있던 자원에 대하여 프로세스 B로부터 할당 요청이 있을 때 프로세스 B에게도 해당자원을 할당하여 준다. 운영체제는 프로세스 A와 프로세스 B가 종료되는 시점에서 일관성을 점검하여 프로세스 A와 프로세스 B 중 하나를 철회시킨다.
- ② 점유대기(Hold and Wait) 조건을 제거하고자 할 경우, 자원을 점유한 프로세스가 다른 자원을 요청하였지만 할당받지 못하면 일단 자신이 점유한 자원을 반납한다. 이후 그 프로세스는 반납하였던 자원과 요청하였던 자원을 함께 요청한다.
- ③ 비선점(No Preemption) 조건을 제거하고자 할 경우, 프로세스는 시작시점에서 자신이 사용할 모든 자원들에 대하여 일괄할당을 요청한다. 일괄할당이 이루어지지 않을 경우, 일괄할당이 이루어 지기까지 지연됨에 따른 성능저하가 발생할 수 있다.
- ④ 환형대기(Circular Wait) 조건을 제거하고자 할 경우, 자원들의 할당 순서를 정한다. 자원 Ri가 자원 Rk보다 먼저 할당되는 것으로 정하였을 경우, 프로세스 A가 Ri를 할당받은 후 Rk를 요청한 상태에서 프로세스 B가 Rk를 할당받은 후 Ri를 요청하면 교착상태가 발생하므로 운영체제는 프로세스 B의 자원요청을 거부한다.
(정답률: 31%)
문제 해설
환형대기(Circular Wait) 조건을 제거하고자 할 경우, 자원들의 할당 순서를 정하는 것은 교착상태를 예방하기 위한 효과적인 방법 중 하나이다. 자원들의 할당 순서를 정하면, 프로세스가 자원을 요청할 때 일정한 순서에 따라 할당되므로 교착상태를 방지할 수 있다. 예를 들어, 자원 Ri가 자원 Rk보다 먼저 할당되는 것으로 정하였을 경우, 프로세스 A가 Ri를 할당받은 후 Rk를 요청한 상태에서 프로세스 B가 Rk를 할당받은 후 Ri를 요청하면 교착상태가 발생하므로 운영체제는 프로세스 B의 자원요청을 거부한다. 이렇게 자원 할당 순서를 정함으로써, 프로세스들이 자원을 요청하는 순서를 제어하여 교착상태를 예방할 수 있다.